A Program Transformation for Debugging Haskell 98
نویسندگان
چکیده
منابع مشابه
Transforming Haskell for Tracing
Hat is a programmer’s tool for generating a trace of a computation of a Haskell 98 program and viewing such a trace in various different ways. Applications include program comprehension and debugging. A new version of Hat uses a stand-alone program transformation to produce self-tracing Haskell programs. The transformation is small and works with any Haskell 98 compiler that implements the stan...
متن کاملAn Embryo to a Debugger for Haskell
We describe a debugger for the lazy functional language Haskell Hud92]. The idea is to transform a program with a source-to-source transformation to a program that creates an evaluation history when executed. If an error is detected while running the program, the programmer can navigate through the evaluation history, by pointing and clicking in a graphical user interface, to try to nd the erro...
متن کاملA Declarative Debugger for Haskell
This thesis is about the design and implementation of a debugging tool which helps Haskell programmers understand why their programs do not work as intended. The traditional debugging technique of examining the program execution step-by-step, popular with imperative languages, is less suitable for Haskell because its unorthodox evaluation strategy is difficult to relate to the structure of the ...
متن کاملSource-Based Trace Exploration
Hat is a programmer’s tool for generating a trace of a computation of a Haskell 98 program and viewing such a trace in various different ways. Applications include program comprehension and debugging. The trace viewing tools show expressions and equations of a computation, but they hardly refer to the source program. This disregard of the program is odd, because the computation follows from the...
متن کاملRefactorings that Split and Merge Programs
Program slicing is a well understood concept in the imperative paradigm, but so far there has been little work on program slicing in the context of functional languages. This paper describes a program slicing technique for Haskell that takes tuple-returning functions apart (called splitting); the converse of this is also described (called merging). The slicer is implemented as a transformation ...
متن کامل